The Victory lets us add charts and data visualization into our React app.
In this article, we’ll look at how to add charts into our React app with Nivo.
Funnel Chart
We can render the chord chart with the ResponsiveChord
component.
To add it, we first have to install the @nivo/funnel
package by running:
npm i @nivo/funnel @nivo/tooltip prop-types @nivo/annotations @nivo/colors
Then we can add the chart by writing:
import React from "react";
import { ResponsiveFunnel } from "@nivo/funnel";
const data = [
{
id: "step_sent",
value: 91922,
label: "Sent"
},
{
id: "step_viewed",
value: 77979,
label: "Viewed"
},
{
id: "step_clicked",
value: 43633,
label: "Clicked"
}
];
const MyResponsiveFunnel = ({ data }) => (
<ResponsiveFunnel
data={data}
margin={{ top: 20, right: 20, bottom: 20, left: 20 }}
valueFormat=">-.4s"
colors={{ scheme: "spectral" }}
borderWidth={20}
labelColor={{ from: "color", modifiers: [["darker", 3]] }}
beforeSeparatorLength={100}
beforeSeparatorOffset={20}
afterSeparatorLength={100}
afterSeparatorOffset={20}
currentPartSizeExtension={10}
currentBorderWidth={40}
motionConfig="wobbly"
/>
);
export default function App() {
return (
<div style={{ width: 400, height: 300 }}>
<MyResponsiveFunnel data={data} />
</div>
);
}
We add the data for our chart with the data
array.
value
has the value to display.
The label
will be shown when we hover over the funnel item.
In the ResponsiveFunnel
component, we set the data
prop to data
to render the data.
margin
has the margins.
valueFormat
has the format the values on the chart.
colors
has the color scheme for the funnel items.
labelColor
has the color scheme for the label.
beforeSeparatorLength
has the length before the separator lines.
beforeSeparatorOffset
has the offset for the parts before the separator lines.
afterSeparatorLength
has the length after the separator lines.
afterSeparatorOffset
has the offset for the parts after the separator lines.
currentPartSizeExtension
has the size to expand on each side when a funnel is active.
currentBorderWidth
has the border width of the item that’s selected.
motionConfig
has the animation effect when we hover over an item.
In App
, we’ve to set the width and height of the wrapper div to render the chart.
Conclusion
We can add funnel chart into our React app with Nivo.